package com.diandian.backend.file.service;

import com.diandian.backend.file.resp.FileInfoRespFile;
import com.diandian.backend.file.resp.MultiFileUploadResp;
import com.diandian.base.boot.starter.response.BaseResult;
import org.springframework.web.multipart.MultipartFile;

public abstract class AbsFileService {

    /**
     * 1. 单文件上传
     * @param file 文件对象
     * @return
     */
    public abstract FileInfoRespFile saveFile(MultipartFile file);

    /**
     * 2. 多文件上传
     * @param file 文件对象
     * @return
     */
    public abstract MultiFileUploadResp multiUpload(MultipartFile file);

    /**
     * 3. 根据文件id删除文件
     * @param fileId 文件id
     * @return
     */
    public abstract BaseResult delete(String fileId);

    /**
     * 4. 根据文件路径删除文件
     * @param path 文件路径
     * @return
     */
    public abstract BaseResult deleteByPath(String path);

    /**
     * 5. 根据文件id获取文件
     * @param fileId 文件id
     * @return
     */
    public abstract String download(String fileId);

    /**
     * 6. 根据文件path获取文件 （拆分服务URL和图片path）
     * @param path 文件路径
     * @return
     */
    public abstract String downloadByPath(String path);

    /**
     * 7. 根据文件id查看文件
     * @param fileId 文件id
     * @return
     */
    public abstract String watch(String fileId);

    /**
     * 8. 根据文件id查看文件
     * @param path 文件路径
     * @return
     */
    public abstract String watchByPath(String path);

    /**
     * 9. 根据文件id查看文件信息
     * @param fileId 文件路径
     * @return
     */
    public abstract FileInfoRespFile query(String fileId);

    /**
     * 10. 根据文件路径查看文件信息
     * @param path 文件路径
     * @return
     */
    public abstract FileInfoRespFile queryByPath(String path);
}
